package com.dean.sort;

import java.util.List;

/**
 * @ClassName BubbSort
 * @Description 冒泡排序算法
 * @Author dean
 * @Date 2021/12/26 13:08
 */
public class ComparatorBubbSorter<T> {

    public void sort(T [] ts,Comparator<T> comparator){
        for (int i = 0; i < ts.length -1; i++) {
            int minpos = i;
            for (int j = i +1 ; j < ts.length; j++) {
               minpos = comparator.compareTo(ts[j],ts[minpos]) == -1 ? j :minpos;
            }
            // 把最小的换到当前位置 从小 到 大
            // 交换位置 当前位置  换成 最小值的那个位置
            T temp = ts[i];
            ts[i] = ts[minpos];
            ts[minpos] = temp;
        }
    }

    public void sort(List<T> ts, Comparator<T> comparator){
        for (int i = 0; i < ts.size() -1; i++) {
            int minpos = i;
            for (int j = i +1 ; j < ts.size(); j++) {
                minpos = comparator.compareTo(ts.get(j),ts.get(minpos)) == -1 ? j :minpos;
            }
            // 把最小的换到当前位置 从小 到 大
            // 交换位置 当前位置  换成 最小值的那个位置
            T temp = ts.get(i);
            ts.set(i,ts.get(minpos));
            ts.set(minpos,temp);
        }
    }
}
